package builder_pattern.f1;

import lombok.Getter;

/**
 * @author liwuji
 * @date 2024/1/17
 * @desc
 **/

@Getter
public class Config {
    private Config(){}
    /**
     * 生成文件的输出目录【 windows:D://  linux or mac:/tmp 】
     */
    private String outputDir = System.getProperty("os.name").toLowerCase().contains("windows") ? "D://" : "/tmp";

    /**
     * 是否覆盖已有文件（默认 false）
     */
    private boolean fileOverride;

    /**
     * 是否打开输出目录
     */
    private boolean open = true;

    /**
     * 作者
     */
    private String author = "作者";

    /**
     * 开启 Kotlin 模式（默认 false）
     */
    private boolean kotlin;

    /**
     * 开启 swagger 模式（默认 false）
     */
    private boolean swagger;
    public static class Builder implements IConfigBuilder<Config>{
        public Builder(){
            this.config = new Config();
        }
        
        private  Config config;
        
        @Override
        public Config build() {
            return this.config;
        }
        public Builder author(String author){
            this.config.author = author;
            return this;
        }
        public Builder fileOverride(boolean fileOverride){
            this.config.fileOverride = fileOverride;
            return  this;
        }
    }
}
